import { defineStore } from 'pinia'
import logo from '@/assets/images/website-config/logo.png'
import loginBG from '@/assets/images/website-config/login-bg.jpg'
import code from '@/assets/images/website-config/code.jpg'
import logoText from '@/assets/images/website-config/logo-text.png'

const defaultConfig = {
  // 登录logo
  pcLogoImg: logo,
  // 登录背景
  pcLoginBgImg: loginBG,
  // 版权声明
  pcCopyright: '©Copyright 2018 广州市蓝海创新科技有限公司 版权所有 | 粤ICP备18115813号-1',
  // 底部二维码
  pcQrcodeImg: code,
  // 公司名称
  pcCompanyName: '广州市蓝海创新科技有限公司',
  // 底部扩展信息
  pcCompanyInfo: `官方网站：www.mall4j.com-test
              开源官网：www.mall4j.com-test`,
  // 网站标题文本
  pcTitleContent: '蓝海商城',
  // 网站标题图标
  pcTitleImg: logo,
  // 图文Logo
  pcLogoImgText: logoText,
  // 导航欢迎语
  pcWelcome: '欢迎来到蓝海创新科技'
}

export const useWebConfigStore = defineStore('webConfig', {
  state: () => {
    return {
      pcConfig: {
        // 登录logo
        pcLogoImg: null,
        // 登录背景
        pcLoginBgImg: null,
        // 版权声明
        pcCopyright: '',
        // 底部二维码
        pcQrcodeImg: null,
        // 公司名称
        pcCompanyName: '',
        // 底部扩展信息
        pcCompanyInfo: '',
        // 网站标题文本
        pcTitleContent: '',
        // 网站标题图标
        pcTitleImg: null,
        // 图文Logo
        pcLogoImgText: null,
        // 导航欢迎语
        pcWelcome: ''
      }
    }
  },
  actions: {
    // 请求配置
    getWebConfig () {
      return new Promise((resolve) => {
        http({
          url: '/webConfig/getPcWebConfig',
          method: 'GET'
        }).then(({ data }) => {
          this.setWebConfig(data)
          changeFavicon()
          resolve(data)
        }).catch(() => {
          this.setWebConfig({})
          changeFavicon()
        })
      })
    },
    // 更新配置
    setWebConfig (data) {
      this.pcConfig = this.formatConfigInfo(data)
    },
    // 格式化配置信息
    formatConfigInfo (config) {
      const data = {}
      config = JSON.parse(JSON.stringify(config))
      // 检测图片是否携带域名
      config.pcLogoImg = checkFileUrl(config.pcLogoImg)
      config.pcLoginBgImg = checkFileUrl(config.pcLoginBgImg)
      config.pcQrcodeImg = checkFileUrl(config.pcQrcodeImg)
      config.pcTitleImg = checkFileUrl(config.pcTitleImg)
      config.pcLogoImgText = checkFileUrl(config.pcLogoImgText)

      // 为空使用默认配置
      data.pcLogoImg = config.pcLogoImg || defaultConfig.pcLogoImg
      data.pcLoginBgImg = config.pcLoginBgImg || defaultConfig.pcLoginBgImg
      data.pcCopyright = config.pcCopyright || defaultConfig.pcCopyright
      data.pcQrcodeImg = config.pcQrcodeImg || defaultConfig.pcQrcodeImg
      data.pcCompanyName = config.pcCompanyName || defaultConfig.pcCompanyName
      data.pcCompanyInfo = config.pcCompanyInfo || defaultConfig.pcCompanyInfo
      data.pcTitleContent = config.pcTitleContent || defaultConfig.pcTitleContent
      data.pcTitleImg = config.pcTitleImg || defaultConfig.pcTitleImg
      data.pcLogoImgText = config.pcLogoImgText || defaultConfig.pcLogoImgText
      data.pcWelcome = config.pcWelcome || defaultConfig.pcWelcome
      return Object.assign(config, data)
    }
  }
})
